package pe.edu.upc.dew.Grupo1.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.Grupo1.model.Local;

public class LocalDaoJdbc extends SimpleJdbcDaoSupport implements LocalDao{

	public void insert(Local local) {
		getSimpleJdbcTemplate().update("insert into `local`(CodigoLocal,Nombre,Direccion,Telefono,Aforo,CodigoCine,Precio) values(?,?,?,?,?,?,?)",
				local.getCodigoLocal(),local.getNombre(),local.getDireccion(),
				local.getTelefono(),local.getAforo(),local.getCine().getCodigoCine(),local.getPrecio());
	}

	public Local getLocalPorCodigo(int codigo) {
		return getSimpleJdbcTemplate().
		queryForObject("select CodigoLocal,Nombre,Direccion,Telefono,Aforo,CodigoCine,Precio from `local` where CodigoLocal = ?", 
		new LocalRowMapper(), codigo);
	}

	public void deleteLocalPorCodigo(int codigo) {
		getSimpleJdbcTemplate().update("delete from `local` where CodigoLocal=?",codigo);
	}

	public void updatePorCodigo(Local local) {
		getSimpleJdbcTemplate().
		update("update `local` set Nombre=?,Direccion=?,Telefono=?,Aforo=?,CodigoCine=?,Precio=? where CodigoLocal=?", 
				local.getNombre(),local.getDireccion(),
				local.getTelefono(),local.getAforo(),
				local.getCine().getCodigoCine(),local.getPrecio(),local.getCodigoLocal());
	}

	public List<Local> getLocalesPorNombre(String nombre) {
		return getSimpleJdbcTemplate().
		query("select CodigoLocal,Nombre,Direccion,Telefono,Aforo,CodigoCine,Precio from `local` where Nombre like CONCAT('%',?)", 
				new LocalRowMapper(),nombre);
	}

	public int getConteoLocales() {
		return getSimpleJdbcTemplate().queryForInt("select count(*) from `local`");
	}

}
